package lambda;

import java.util.Comparator;

/**
 * lambda 表达式  用来替换匿名内部类的使用
 */
public class Lambda01 {
    public static void main(String[] args) {
        //1、使用实现类的方式
        MyComparator myComparator = new MyComparator();


        //2、使用匿名内部类来实现接口
        Comparator comparator = new Comparator<Integer>() {
            @Override
            public int compare(Integer a, Integer b) {
                return a - b;
            }
        };


        //3、使用lambda表达式
        ComparatorFunc comparatorFunc = (a, b) -> a - b;

        System.out.println(myComparator.compare(1,2));
        System.out.println(comparator.compare(1,2));
        System.out.println(comparatorFunc.compare(1,2));
    }
}

/**
 * 接口实现类的方式
 */
class MyComparator implements Comparator<Integer> {
    @Override
    public int compare(Integer a, Integer b) {
        return a - b;
    }
}

@FunctionalInterface
interface ComparatorFunc {
    int compare(int a, int b);
}